/*
 * @(#) PublicItemAction.java 2011-9-28
 *
 * Copyright (c) 2011, Strong Technology. All Rights Reserved.
 * Strong Technology. CONFIDENTIAL
 */
package cn.strong.gweva.publiceva.presentation.action;

import cn.strong.gweva.common.business.entity.PagerEntity;
import cn.strong.gweva.common.business.entity.db.JxkhPublicItemEntity;
import cn.strong.gweva.common.presentation.action.AjaxBaseAction;
import cn.strong.gweva.publiceva.business.entity.PublicItemEntity;
import cn.strong.gweva.publiceva.business.service.PublicItemService;

/**
 * 公共考核项目Action。
 * 
 * @author lilanfei
 * @version 1.0
 * @since 2011-9-28
 */
public class PublicItemAction extends AjaxBaseAction
{
	/**  */
	private static final long serialVersionUID = 4983746105263830060L;
	/** 公共考核项目接口 */
	private PublicItemService publicItemService;

	/** 公共考核项目结果（分页） */
	private PagerEntity pagerEntity;
	/** 公共考核项目检索entity */
	private JxkhPublicItemEntity publicItemSearchEntity;
	/** 公共考核项目管理entity */
	private PublicItemEntity publicItemEntity;
	/** 公共考核项目ID */
	private Integer itemId;
	/** 公共考核规则长度 */
	private int publicRuleSize;

	/**
	 * 公共考核项目列表.
	 * 
	 * @return
	 */
	public String list()
	{
		try
		{
			this.pagerEntity = this.publicItemService.searchPublicItemPage(this.pagerEntity,
					this.publicItemSearchEntity);
		}
		catch (Exception e)
		{
			return processException(e);
		}

		return LIST;
	}

	/**
	 * 新增公共考核项目初始化.
	 * 
	 * @return
	 */
	public String add()
	{
		return ADD;
	}

	/**
	 * 修改公共考核项目初始化.
	 * 
	 * @return
	 */
	public String modify()
	{
		try
		{
			this.publicItemEntity = this.publicItemService.searchPublicItemById(this.itemId);

			if (this.publicItemEntity.getPublicRuleList() != null)
			{
				this.publicRuleSize = this.publicItemEntity.getPublicRuleList().size();
			}
			else
			{
				this.publicRuleSize = 0;
			}
		}
		catch (Exception e)
		{
			return processException(e);
		}

		return MODIFY;
	}

	/**
	 * 新增公共考核项目.
	 * 
	 * @return
	 */
	public String insert()
	{
		try
		{
			this.publicItemEntity.getPublicItem().setUpdateUserId(this.getLoginUser().getUserId());
			this.publicItemService.insert(this.publicItemEntity);
		}
		catch (Exception e)
		{
			return processException(e);
		}

		return this.list();
	}

	/**
	 * 修改公共考核项目.
	 * 
	 * @return
	 */
	public String update()
	{
		try
		{
			this.publicItemEntity.getPublicItem().setUpdateUserId(this.getLoginUser().getUserId());
			this.publicItemService.updatePublicItem(this.publicItemEntity);
		}
		catch (Exception e)
		{
			return processException(e);
		}

		return this.list();
	}

	/**
	 * 删除公共考核项目.
	 * 
	 * @return
	 */
	public String delete()
	{
		try
		{
			// 逻辑删除
			//this.publicItemEntity = new PublicItemEntity();
			//JxkhPublicItemEntity jxkhpublicItemEntity = new JxkhPublicItemEntity();
			//jxkhpublicItemEntity.setItemId(this.itemId);
			//this.publicItemEntity.setPublicItem(jxkhpublicItemEntity);
			//this.publicItemEntity.getPublicItem().setUpdateUserId(this.getLoginUser().getUserId());
			// 物理删除
			this.publicItemService.deletePublicItemByItemId(this.itemId);
		}
		catch (Exception e)
		{
			return processException(e);
		}

		return this.list();
	}

	/**
	 * 查看公共考核项目详细.
	 * 
	 * @return
	 */
	public String detail()
	{
		try
		{
			this.publicItemEntity = this.publicItemService.searchPublicItemById(this.itemId);
		}
		catch (Exception e)
		{
			return processException(e);
		}

		return DETAIL;
	}
	
	/**
	 * 获取公共考核项目接口
	 * @return 公共考核项目接口
	 */
	public PublicItemService getPublicItemService()
	{
		return publicItemService;
	}
	/**
	 * 设定公共考核项目接口
	 * @param publicItemService 公共考核项目接口
	 */
	public void setPublicItemService(PublicItemService publicItemService)
	{
		this.publicItemService = publicItemService;
	}

	/**
	 * 获取公共考核项目结果（分页）
	 * @return 公共考核项目结果（分页）
	 */
	public PagerEntity getPagerEntity()
	{
		return pagerEntity;
	}
	/**
	 * 设定公共考核项目结果（分页）
	 * @param pagerEntity 公共考核项目结果（分页）
	 */
	public void setPagerEntity(PagerEntity pagerEntity)
	{
		this.pagerEntity = pagerEntity;
	}

	/**
	 * 获取公共考核项目检索entity
	 * @return 公共考核项目检索entity
	 */
	public JxkhPublicItemEntity getPublicItemSearchEntity()
	{
		return publicItemSearchEntity;
	}
	/**
	 * 设定公共考核项目检索entity
	 * @param publicItemSearchEntity 公共考核项目检索entity
	 */
	public void setPublicItemSearchEntity(JxkhPublicItemEntity publicItemSearchEntity)
	{
		this.publicItemSearchEntity = publicItemSearchEntity;
	}

	/**
	 * 获取公共考核项目管理entity
	 * @return 公共考核项目管理entity
	 */
	public PublicItemEntity getPublicItemEntity()
	{
		return publicItemEntity;
	}
	/**
	 * 设定公共考核项目管理entity
	 * @param publicItemEntity 公共考核项目管理entity
	 */
	public void setPublicItemEntity(PublicItemEntity publicItemEntity)
	{
		this.publicItemEntity = publicItemEntity;
	}

	/**
	 * 获取公共考核项目ID
	 * @return 公共考核项目ID
	 */
	public Integer getItemId()
	{
		return itemId;
	}
	/**
	 * 设定公共考核项目ID
	 * @param itemId 公共考核项目ID
	 */
	public void setItemId(Integer itemId)
	{
		this.itemId = itemId;
	}

	/**
	 * 获取公共考核规则长度
	 * @return 公共考核规则长度
	 */
	public int getPublicRuleSize()
	{
		return publicRuleSize;
	}
	/**
	 * 设定公共考核规则长度
	 * @param publicRuleSize 公共考核规则长度
	 */
	public void setPublicRuleSize(int publicRuleSize)
	{
		this.publicRuleSize = publicRuleSize;
	}
}
